﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using ModeloDesenvolvimento;

/*Escrito em 05/01/2012*/
namespace Poligas_ERP.Classes
{
    public class Usuarios
    {
        SqlConnection cnx = new SqlConnection();
        SqlCommand cmd = new SqlCommand();
        DataTable tbCarregaSituacao = new DataTable();
        DataTable tbRetornaUsuarios = new DataTable();
        DataTable tbLista = new DataTable();

        Db db = new Db();

        public Usuarios() { }

        public DataTable RecuperaDadosPorCodigo(Int32 CodUsuario)
        {
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.Parameters.AddWithValue("@CodUsuario", CodUsuario);
                cmd.CommandText = "spUsuariosSelect";

                tbRetornaUsuarios.Clear();
                tbRetornaUsuarios.Load(cmd.ExecuteReader());
            }
            catch { }

            finally
            {
                db.FechaConexao(cnx);
            }
            return tbRetornaUsuarios;
        }
        public DataTable LocalizarDados(String Pesquisar)
        {
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.Parameters.AddWithValue("@Nome", Pesquisar);

                cmd.CommandText = "spUsuariosSelectPesquisar";

                tbLista.Clear();
                tbLista.Load(cmd.ExecuteReader());
            }
            catch { }

            finally
            {
                db.FechaConexao(cnx);
            }
            return tbLista;


        }
        public DataTable CarregaSituacoes()
        {
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.CommandText = "spCarregaSituacoes";

                tbCarregaSituacao.Clear();
                tbCarregaSituacao.Load(cmd.ExecuteReader());
            }
            catch
            { }
            finally
            {
                db.FechaConexao(cnx);
            }
            return tbCarregaSituacao;

        }
        public Boolean Inserir(Int32 CodSituacao, String Nome, String Usuario, String Senha, Int32 Nivel)
        {
            Boolean erro = false;
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.Parameters.AddWithValue("@CodSituacao", CodSituacao);
                cmd.Parameters.AddWithValue("@Nome", Nome);
                cmd.Parameters.AddWithValue("@Usuario", Usuario);
                cmd.Parameters.AddWithValue("@Senha", Senha);
                cmd.Parameters.AddWithValue("@Nivel", Nivel);


                cmd.CommandText = "spUsuariosInsert";
                cmd.ExecuteNonQuery();
            }
            catch
            {
                erro = true;
            }
            finally
            {
                db.FechaConexao(cnx);
            }
            return erro;


        }
        public Boolean Atualizar(Int32 CodUsuario, Int32 CodSituacao, String Nome, String Usuario, String Senha, Int32 Nivel)
        {
            Boolean erro = false;
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.Parameters.AddWithValue("@CodUsuario", CodUsuario);
                cmd.Parameters.AddWithValue("@CodSituacao", CodSituacao);
                cmd.Parameters.AddWithValue("@Nome", Nome);
                cmd.Parameters.AddWithValue("@Usuario", Usuario);
                cmd.Parameters.AddWithValue("@Senha", Senha);
                cmd.Parameters.AddWithValue("@Nivel", Nivel);

                cmd.CommandText = "spUsuariosUpdate";

                cmd.ExecuteNonQuery();
            }
            catch
            {

                erro = true;
            }
            finally
            {
                db.FechaConexao(cnx);
            }
            return erro;
        }
        public Boolean Excluir(Int32 CodUsuario)
        {
            Boolean sucesso = true;

            if(CodUsuario < 0)
            {
                sucesso = false;
            }

            else
            {
                try
                {
                    cnx = db.AbreConexao("strConexao");
                    cmd = db.getCommand(cnx);

                    cmd.Parameters.AddWithValue("@CodUsuario", CodUsuario);
                    cmd.CommandText = "spUsuariosDelete";

                    cmd.ExecuteNonQuery();
                }
                catch
                {
                    sucesso = false;
                }
                finally
                {
                    db.FechaConexao(cnx);
                }
            }
            return sucesso;
        }

    }
}
